﻿using System;
using System.Collections.Generic;
using ClickLand.CorporacionPlaza.Comunes.Recursos;
using Logger;
using System.Reflection;
using ClickLand.CorporacionPlaza.Comunes.Recursos;
using ClickLand.CorporacionPlaza.Comunes.Entidades;
using ClickLand.CorporacionPlaza.LogicaNegocio.Contratos;
using ClickLand.CorporacionPlaza.LogicaNegocio.Implementacion.ComandosContratoPension;


namespace ClickLand.CorporacionPlaza.LogicaNegocio.Fabricas
{
    public class FabricaComandosContratoPension
    {
        public static IComando<List<ContratoPension>> ObtenerComandoConsultarLista(long id)
        {
            #region Instrumentacion Entrada
            if (Log.InfoHabilitado)
                Log.Info(string.Format(Recurso.EntrandoMetodo,MethodBase.GetCurrentMethod().Name));
            #endregion
            var retorno = new ConsultarLista(id);
            #region Instrumentacion Salida
            if (Log.InfoHabilitado)
                Log.Info(string.Format(Recurso.SaliendoMetodo,MethodBase.GetCurrentMethod().Name));
            #endregion
            return retorno;
        }


        /// <summary> Metodo que obtiene una instancia de un comando que consulta por fecha </summary>
        /// <param name="contrato">Datos del contrato a consultar</param>
        /// <param name="fecha">fecha de inicio de la consulta</param>
        /// <returns>Lista de contrato pension</returns>
        public static IComando<List<ContratoPension>> ObtenerComandoConsultarXFecha(Contrato contrato, DateTime fecha)
        {
            #region Instrumentacion Entrada
            if (Log.InfoHabilitado)
                Log.Info(string.Format(Recurso.EntrandoMetodo, MethodBase.GetCurrentMethod().Name));
            #endregion
            var retorno = new ConsultarXFecha(contrato,fecha);
            #region Instrumentacion Salida
            if (Log.InfoHabilitado)
                Log.Info(string.Format(Recurso.SaliendoMetodo, MethodBase.GetCurrentMethod().Name));
            #endregion
            return retorno;
        }
    }
}
